<!DOCTYPE html>
<html lang="en-us"><meta charset="utf-8" />

  <title>Keep going - Keep going</title>


<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="https://vultr.unnamed.top/css/latex.css" />
<link rel="stylesheet" href="https://vultr.unnamed.top/css/main.css" />
<script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
<meta name="generator" content="Hugo 0.84.0-DEV" /><body>


  





<header>
  <nav class="navbar">
  <div class="nav">
    

    <ul class="nav-links">
      
    </ul>
  </div>
</nav>
  <div class="intro-header">
    <div class="container">
      <div class="page-heading">
        
          <h1>Keep going</h1>
          
            <p class="author"><br/></p>

            
          
        
      </div>
    </div>
  </div>
</header>
<div id="content">
<div class="container" role="main">
    <div class="posts-list">
      
        
      

      
        <article class="post-preview">
  <a href="https://vultr.unnamed.top/posts/go-install/">
      <h2 class="post-title">go安装后的设置</h2>
  </a>
  <div class="postmeta">
    <span class="meta-post">
  <i class="fa fa-calendar-alt"></i>Jun 16, 2021
  
</span>
  </div>
  <div class="post-entry">
    
  </div>
</article>
      
        <article class="post-preview">
  <a href="https://vultr.unnamed.top/posts/qt-textcodec/">
      <h2 class="post-title">QT5 编码</h2>
  </a>
  <div class="postmeta">
    <span class="meta-post">
  <i class="fa fa-calendar-alt"></i>Apr 15, 2021
  
</span>
  </div>
  <div class="post-entry">
    
      <p>QString内部保存的是unicode， 如下初始化QString时， QString的构造函数将会调用fromUtf8()转换到unicode，然后存储在内部。
//QString converts the const char * data into Unicode using the fromUtf8() function.QString str = &quot;Hello&quot;; 以上对于utf8兼容的ascii字符集来说，是没有问题的。 但是对于其他字符集（比如GBK），则会出现问题。 例如下面的代码， 可能会出现问题：
//QString converts the const char * data into Unicode using the fromUtf8() function.QString str = &quot;中文汉字&quot;;以上代码， QString会尝试将const char*通过fromUtf8()转换成unicode。 如果当前源文件是utf8编码的， 且编译器能正确的处理utf8编码的源文件， 那么一切将正常。 但是， 当源文件的保存编码不是utf8（比如GBK）时， 实际上编译器处理这段代码的时候， 会将这些字符串以GBK编码的结果写在生成的可执行文件中。 程序运行时，QString调用fromUtf8()尝试解码一段utf8编码的字符串时， 将出现问题， 在GUI上会显示乱码。
当需要处理非utf8兼容字符集时，需要注意一下几点，以保证可以跨平台编译：
 源文件以带bom的utf8保存， 且文件结尾统一使用unix结尾符格式。 visual studio可以通过&quot;文件-&gt;高级保存选项&quot;， 其中编码选择&quot;Unicode(UTF8带签名）代码页65001&quot;, 行尾选择&quot;Unix(LF)&quot;， 或者通过安装Format on Save这个扩展来结局问题。 其他编辑器按照一定的方法也可以设置。 如果使用的是visual studio编译器，需要设置编译器的/utf-8选项， 让cl.exe正确的处理utf8编码的源文件。  对于从网络或者文件读取的字符串，需要动态处理的时候， 则需要自己通过QTextCodec进行解码处理。 比如以下代码处理一段网络获得的GBK编码的字符串,以便正确显示：</p>
        <a href="https://vultr.unnamed.top/posts/qt-textcodec/" class="post-read-more">Read More</a>
    
  </div>
</article>
      
        <article class="post-preview">
  <a href="https://vultr.unnamed.top/posts/my-first-post/">
      <h2 class="post-title">Spec</h2>
  </a>
  <div class="postmeta">
    <span class="meta-post">
  <i class="fa fa-calendar-alt"></i>Jun 15, 2020
  
</span>
  </div>
  <div class="post-entry">
    
  </div>
</article>
      
      </div>
    
</div>

        </div><footer>
  <div class="container">
    <p class="credits copyright">
      <p class="credits theme-by">
        Powered By <a href="https://gohugo.io">Hugo</a>&nbsp;/&nbsp;Theme&nbsp;<a href="https://github.com/7ma7X/HugoTeX">HugoTeX</a>
        <br>
        <a href="https://vultr.unnamed.top/about"></a>
        &copy;
        2021
      </p>
  </div>
</footer></body>
</html>
